<template>
	<view class="login">
		<view class="content">
			<!-- 头部logo -->
			<view class="header ">
				<image :src="logoImage"></image>
			</view>
			<!-- 主体表单 -->
			<view class="main">
				<wInput
					v-model="phoneData"
					type="text"
					maxlength="11"
					placeholder="用户名:admin"
				></wInput>
				<wInput
					v-model="passData"
					type="password"
					maxlength="11"
					placeholder="密码:admin"
				></wInput>
			</view>
			
			<wButton 
				text="登 录"
				:rotate="isRotate" 
				@click.native="startLogin()"
			></wButton>
			<!-- 其他登录 -->
			<view class="other_login cuIcon">
				<view class="login_icon">
					<view class="cuIcon-weixin" @tap="login_weixin" v-if="!isAuto"></view>
					<button open-type='getUserInfo' size="mini" v-if="isAuto" @getuserinfo="bindGetUserInfo">微信登录前授权</button>
				</view>
				
<!-- 				<view class="login_icon">
					<view class="cuIcon-weibo" @tap="login_weibo"></view>
				</view>
				<view class="login_icon">
					<view class="cuIcon-github" @tap="login_github"></view>
				</view> -->
			</view>

			<!-- 底部信息 -->
			<view class="footer">
				<navigator url="forget" open-type="navigate">找回密码</navigator>
				<text>|</text>
				<navigator url="register" open-type="navigate">注册账号</navigator>
			</view>
			
		</view>
	</view>
</template>

<script>
	var _this;
	import wInput from '../../../components/watch-login/watch-input.vue'; //输入框
	import wButton from '../../../components/watch-login/watch-button.vue'; //按钮
	import {
		getLogin,
		wexinLogin,
	} from '../../../service/api/login.js' //登录api
	
	export default {
		data() {
			return {
				//logo图片 base64
				logoImage: 'http://pi7x77.natappfree.cc/images/login/1.jpg',
				phoneData:'', //用户/电话
				passData:'', //密码
				isRotate: false, //是否启动加载
				user:{
					telPhone:'',
					password:'',
				},
				hasUserInfo: false,
				isAuto:false,
				
			};
		},
		components:{
			wInput,
			wButton
		},
		mounted() {
			_this= this;
			this.isLogin();
			this.is_auto();
		},
		methods: {
			bindGetUserInfo: function(e) {
			  console.log("456456"+e.detail.userInfo)
			  if (e.detail.userInfo){
				 _this.isAuto = false;
			  } else {
				  _this.isAuto = true;
			  }
			},
			isLogin(){
				//判断缓存中是否登录过，直接登录
				try {
					const value = uni.getStorageSync('setUserData');
					if (value) {
						//有登录信息
						console.log("已登录用户：",value);
						_this.$store.dispatch("setUserData",value); //存入状态
						uni.reLaunch({
							url: '../../../pages/index',
						});
					}
				} catch (e) {
					// error
				}
			},
		    startLogin(){
				//登录
				
				if(this.isRotate){
					//判断是否加载中，避免重复点击请求
					return false;
				}
				
				if (this.phoneData.length == "") {
				     uni.showToast({
				        icon: 'none',
						position: 'bottom',
				        title: '用户名不能为空'
				    });
				    return;
				}
		        if (this.passData.length < 5) {
		            uni.showToast({
		                icon: 'none',
						position: 'bottom',
		                title: '密码不正确'
		            });
		            return;
		        }
				// uni.showLoading({
				// 	tittle: '登录中'
				// });
				_this.isRotate=true
				_this.user.telPhone=_this.phoneData
				_this.user.password=_this.passData
				//这里加了个延时，主要是为了让登录动画完整显示出来， 不需要可以删除
				setTimeout(function(){
					getLogin(_this.user)
					.then(res => {
						console.log(res) 
						//简单验证下登录（不安全）
						if(res.data.code==0){
							let userdata={
								"username":res.data.data.username,
								"userid":res.data.data.userId,
								"accesstoken":res.data.accesstoken,
							} //保存用户信息和accesstoken
							try {
								uni.setStorageSync('setUserData', userdata); //存入缓存
							} catch (e) {
								// error
							}
							_this.$store.dispatch("setUserData",userdata); //存入状态

							_this.isRotate=false
							uni.showToast({
								icon: 'success',
								position: 'bottom',
								title: '登录成功'
							});
							uni.reLaunch({
								url: '../../../pages/index',
							});
						}else{
							_this.isRotate=false
							_this.passData=""
							uni.showToast({
								icon: 'none',
								position: 'bottom',
								title: '账号或密码错误'
							});
						}
						uni.hideLoading();
					}).catch(err => {
						console.log(err)
						let msg = err.errMsg; //错误信息
						uni.showToast({
						    icon: 'none',
							position: 'center',
						    title: '网络开小差了，小主稍后再试哦^.^'
						});
						_this.isRotate=false
						uni.hideLoading();
					})
				},2000)
				
				
		    },
			login_weixin() {
				console.log("开始测试微信登录");
				//微信登录（没有服务器 测试不了，就做到这一步没了哈哈哈哈）
				const userInfo = uni.setStorageSync('setUserData')
				console.log('----' + userInfo + '------');
				if (userInfo) {
					console.log('已登录，无需重复登录');
				}else{
				  // 1. 小程序通过wx.login()获取code
				  uni.login({
					provider: 'weixin',
					success: function (login_res) {
						console.log('登录成功，返回状态为：' + login_res.code);
					  //获取用户信息
					  uni.getUserInfo({
						provider: 'weixin',
						success: function (info_res) {
						  console.log('获取微信信息成功'+ info_res.rawData)
						  // 2. 小程序通过wx.request()发送code到开发者服务器
						  uni.request({
							url: 'http://pi7x77.natappfree.cc/ibest/user/wx/login',
							method: 'POST',
							header: {
							  'content-type': 'application/x-www-form-urlencoded'
							},
							data: {
							  code: login_res.code, //临时登录凭证
							  rawData: info_res.rawData, //用户非敏感信息
							  signature: info_res.signature, //签名
							  encrypteData: info_res.encryptedData, //用户敏感信息
							  iv: info_res.iv //解密算法的向量
							},
							success: function (res) {
								
							  if (res.data.status == 200) {
								let userdata={
									"nickName":res.data.data.nickName,
									"userid":res.data.data.userId,
									"accesstoken":res.data.data.token,
								} //保存用户信息和accesstoken
								try {
									uni.setStorageSync('setUserData', userdata); //存入缓存
									uni.setStorageSync('userinfo', res.data.data); //存入缓存
								} catch (e) {
									// error
								}
								_this.$store.dispatch("setUserData",userdata); //存入状态

								_this.isRotate=false
								uni.showToast({
									icon: 'success',
									position: 'bottom',
									title: '登录成功'
								});
								//小程序存储skey（自定义登录状态）到本地
								uni.setStorageSync('userInfo', userInfo);
								console.log(res.data.data);
								uni.setStorageSync('skey', res.data.data.skey);
								_this.hasUserInfo=true;
								_this.user= userInfo;
								uni.reLaunch({
									url: '../../../pages/index',
								});
							  } else {
								console.log('服务器异常');
							  }
							},
							fail: function (error) {
							  //调用服务端登录接口失败
							  console.log(error);
							}
						  })
						},
						fail:function(error){
							console.log(error);
						}
					  })
					}
				  })
				}
				// #ifdef MP-WEIXIN
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '无服务器进行测试...'
				});
				// const appid=''; //小程序id
				// const secret=''; //小程序 appSecret
				// 
				// let jscode=''; //登录时获取的 code
				// wx.login({
				// 	success (res) {
				// 		if (res.code) {
				// 			console.log(res.code);
				// 			jscode = res.code;
				// 			//微信登录
				// 			wexinLogin(appid,secret,jscode)
				// 			.then(res => {
				// 				console.log(res)
				// 			}).catch(err => {
				// 				console.log(err)
				// 				
				// 			})
				// 			
				// 		} else {
				// 		  console.log('登录失败！' + res.errMsg)
				// 		}
				// 	}
				// })
				
				// #endif
				// #ifndef MP-WEIXIN
					uni.showToast({
						icon: 'none',
						position: 'bottom',
						title: '...'
					});
				// #endif
			},
			login_weibo() {
				//微博登录
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '...'
				});
			},
			login_github() {
				//github登录
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '...'
				});
			},
			is_auto(){
				//先获取用户权限
				uni.getSetting({
				  success(res) {
					console.log('已具有获取用户信息的权限'+ res.authSetting['scope.userInfo']);
				    if (!res.authSetting['scope.userInfo']) {
					 //  console.log('123456');
				  //     uni.authorize({
				  //       scope: 'scope.userInfo',
				  //       success () {
						// 	console.log('已具有获取用户信息的权限');
				  //       },
						// fail () {
						// 	console.log('获取用户信息的权限失败');
						// }
				  //     })
						_this.isAuto = true;
						
				    }else{
						_this.isAuto = false;
					}
				  }
				})
			},
		}
	}
</script>

<style>
	@import url("../css/main.css");
</style>
